Objekt viditelny v cele aplikaci
Otázka od: Ales Kerner
29. 10. 2002 9:41
Zdravim,
mam nasledujici problem, mam vytvoreny objekt TGlobal, odvozeny od TObject,
potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny formular,
jedine k cemu jsem dospel
je dopsat do DPR toto
Application.CreateForm(TGlobal, Global);
Ale nezda se mi to CreateForm, kdyz to form neni.
Dik za radu
Ales
---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.406 / Virová báze: 229 - datum vydání: 21.10.2002
Odpovedá: Ondřej Kaláb
29. 10. 2002 9:55
Staci si tenot objekt dat do unity hlavniho formulare, na kterou si potom date
odkazy z kazde další unit.
Napr. Hlavni form je Form1, hlavni unit Unit1, zam si objekt vytvorite a pak si
v kazde další date uses unit1. No a je to...
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On Behalf
Of Ales Kerner
Sent: Tuesday, October 29, 2002 9:42 AM
To: delphi-l@clexpert.cz
Subject: Objekt viditelny v cele aplikaci
Zdravim,
mam nasledujici problem, mam vytvoreny objekt TGlobal, odvozeny od TObject,
potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny formular,
jedine k cemu jsem dospel je dopsat do DPR toto
Application.CreateForm(TGlobal, Global);
Ale nezda se mi to CreateForm, kdyz to form neni.
Dik za radu
Ales
---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.406 / Virová báze: 229 - datum vydání: 21.10.2002
---
Poíchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002
---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002
Odpovedá: Petr Brant
29. 10. 2002 10:05
Pokud je odvozen od TObject, tak staci zavolat zdedeny konstruktor resp.
napsat vlastni a v jeho ramci zavolat ten zdedeny, napriklad
constructor TGlobal.Create;
begin
inherited;
...(ostatni kod)
end;
takze se nemusi pouzivat CreateForm (a kompilator to zbastil?). Chces-li mit
ten objekt globalni, dej ho do unitu treba GlobalUnit a tento nazev pak
uvedes v seznamu USES v kazdem unitu, odkud to ma byt videt. Jo a v tom
GlobalUnit musis mit deklarovanou i naplnenou promennou, ve ktere je ta
instance.
RNDr. Petr Brant [brant@dcomm.cz]
D&COMM s.r.o.
Korunovační 6
Praha 7
tel. +420724007234
Subject: Objekt viditelny v cele aplikaci
mam vytvoreny objekt TGlobal, odvozeny od TObject,
potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny
formular,
jedine k cemu jsem dospel
je dopsat do DPR toto
Application.CreateForm(TGlobal, Global);
Ale nezda se mi to CreateForm, kdyz to form neni.
Odpovedá: Richard Siegl
29. 10. 2002 10:11
A este nezabudnut ak vznikne ciklicky odkaz uses Unit1
presunut referenciu uses Unit1 do casti Implementation.
Rickie
----- Original Message -----
From: "Ondřej Kaláb" <ondrej.kalab@webhouse.cz>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, October 29, 2002 9:47 AM
Subject: RE: Objekt viditelny v cele aplikaci
Staci si tenot objekt dat do unity hlavniho formulare, na kterou si potom
date odkazy z kazde další unit.
Napr. Hlavni form je Form1, hlavni unit Unit1, zam si objekt vytvorite a pak
si v kazde další date uses unit1. No a je to...
Odpovedá: Radim Kunz
29. 10. 2002 10:31
----- Original Message -----
From: "Ales Kerner" <kerner@metalcom.cz>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, October 29, 2002 9:42 AM
Subject: Objekt viditelny v cele aplikaci
> Zdravim,
>
> mam nasledujici problem, mam vytvoreny objekt TGlobal, odvozeny od
TObject,
> potrebuji aby byl videt v cele aplikaci a nebyl navazan na zadny formular,
> jedine k cemu jsem dospel
> je dopsat do DPR toto
>
> Application.CreateForm(TGlobal, Global);
>
> Ale nezda se mi to CreateForm, kdyz to form neni.
>
> Dik za radu
>
> Ales
>
Nemusis to davat do DPR, staci do unity, kde mas ten TGlobal, napsat
initialization
Global := TGlobal.Create
finalization
Global.Free;
Odpovedá: Ondřej Kaláb
29. 10. 2002 11:21
Jo, jasne, ale to je standardne probirana věc v kazde prorucce Delphi
pro zacatecniky.... Myslim.
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz] On
Behalf Of Richard Siegl
Sent: Tuesday, October 29, 2002 10:14 AM
To: delphi-l@clexpert.cz
Subject: Re: Objekt viditelny v cele aplikaci
A este nezabudnut ak vznikne ciklicky odkaz uses Unit1
presunut referenciu uses Unit1 do casti Implementation.
Rickie
----- Original Message -----
From: "Ondřej Kaláb" <ondrej.kalab@webhouse.cz>
To: <delphi-l@clexpert.cz>
Sent: Tuesday, October 29, 2002 9:47 AM
Subject: RE: Objekt viditelny v cele aplikaci
Staci si tenot objekt dat do unity hlavniho formulare, na kterou si
potom date odkazy z kazde další unit. Napr. Hlavni form je Form1, hlavni
unit Unit1, zam si objekt vytvorite a pak si v kazde další date uses
unit1. No a je to...
---
Příchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002
---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002
Odpovedá: Jan Sebelík
29. 10. 2002 13:54
> Odesílatel: OndĹ?ej KalĂĄb <ondrej.kalab@webhouse.cz>
> Staci si tenot objekt dat do unity hlavniho formulare, na kterou si potom
date odkazy z kazde dalĹĄĂ unit.
> Napr. Hlavni form je Form1, hlavni unit Unit1, zam si objekt vytvorite a pak
si v kazde dalĹĄĂ date uses unit1. No a je to...
No, nevim, ale prave toto je podle me spatne.
Daleko lepsi je umisteni v GlobalUnit, ktere navrhuje treba Petr Brant.
Ja to chapu takto:
jeslize je v UnitX uses UnitY, znamena to, ze UnitY "slouzi, je sluhou" pro
UnitX.
Navrhovane reseni tvrdi, ze unit hlavniho formulare (Unit1) "slouzi, je sluhou"
pro vsechny ostatni unity.
Nesmysl.
Krizove reference v unitach mohou vest k peknemu zmatku, je treba je (pokud
vubec) delat velmi opatrne.
Predstavte si toto:
Project1 uses UnitMain1, ...
UnitMain1 uses Unit12, Unit13, ..., UnitX
UnitX uses UnitMain1;
Project2 uses UnitMain2, ...
UnitMain2 uses Unit22, Unit23, ..., UnitX
No a v Projektu 2 mam prikompilovan cely Projekt 1.
Pokud si myslite, ze to je "umela" konstukce, nemyslete si to.
Uz jsem to opravdu videl.
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================